<!DOCTYPE html>
<html lang="en">
<head>
  <title>我与Linux系统</title>
  <meta charset="UTF-8">
  <meta name="description" content="ltoddy's blog">
  <meta name="author" content="liutao">
  <meta name="author" content="ltoddy">
  <meta name="author" content="just for fun">

  <link rel="icon" href="../../static/me.jpg">
  <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
        integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

  <!-- jQuert Microsoft CDN -->
  <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
  <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"
          integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
          crossorigin="anonymous"></script>

</head>
<body>
<div class="container">
  <div class="page-header">
    <h3>我与Linux系统</h3>
  </div>
  <p> 电影中一个超级黑客坐在电脑面前，从不摸鼠标一下，几十秒就能入侵超级安全的军事系统。这是因为电影制片人意识到，作为人类，我们应该本能的知道让计算机圆满完成工作的唯一途径：是用键盘来操纵计算机。</p>
  <p>我从2016年10月，开始完全使用Linux系统(Ubuntu 16.04 & Gnome3)工作。</p>
  <p>其实在此之前我已经在linux环境(用的虚拟机)下编程了，原因有两点，命令行的技术是值得学习的。</p>
  <p>另一个原因就是，我要参加的ACM/ICPC的编程环境就是Ubuntu，所以就算是提前适应环境了。</p>
  <p>图形用户界面让简单的任务更加容易完成，而命令行界面使完成复杂的任务成为可能。</p>
  <p>学习命令行会获益匪浅，不像其他一些计算机技能，一段时间之后可能就被淘汰了，命令行知识却不会落伍。因为命令行接受住了时间的考验。</p>
  <p>我现在挺喜欢linux系统的，现在最新版本的Ubuntu17.04所使用的桌面环境是gnome，在此之前都是Unity，Unity我不喜欢，所以我当初安装系统之后的第一件事情就是
    更换桌面环境。<img src="http://img.vim-cn.com/7e/0b1b675a39a67a9decc5774b33c61f083d7c5d.png"></p>
  <p>现在主流的操作系统有微软的Windows，苹果的MacOS，和开源世界的Linux。其实对于Windows，只能说盖茨先生非常有商业头脑，容忍盗版系统的存在。
    所以现在才能占有第一的市场份额。不过微软公司，他们的Windows系统是真正为用户设计的系统。因为普通用户不需要做那么复杂的事情，他们用电脑无非就是office和上网之类的罢了，
    所以桌面系统可以让简单的事情变得更简单，这就足够了。</p>
  <p>不过我毕竟是一个程序员，而且是想要走的长远的程序员。对于linux来说，Windows系统能做的事情，它也都能做，而且能做的更好，虽然有两大硬伤--图形处理和游戏。
    而且林纳斯作客TED的时候也说过：如果被困在孤岛上，前提是你作出一个精美的GUI才可以逃离，他宁愿选择孤死。不过对于后端程序员来说，这两处硬伤无关痛痒。
    其他的，linux系统确确实实对于程序员来说是很方便的。</p>
  <p>比如，linux系统比windows系统流畅的很多，而且对硬件的要求也不是很高。我家储藏室初中时代的那个电脑。我寒假搬出来，给它装了CentOS，在虚拟终端下生活一点都不卡，
    挺流畅的，不过估计换了win10，硬件这关就过不了。(当然我当时没有用浏览器，仅仅是尝试生活在虚拟终端下是什么感觉，firefox,chrome用起内存来都是大手笔。)</p>
  <p>而且，linux占用内存也是比windows小的，虽然你通过top去看你的内存使用情况时，看上去linxu"吃掉了"你的内存，但其实是做了swap。</p>
  <p>我很清楚的记得，小学时候，我家长培养我良好电脑习惯的时候，其中就有开机之后不要着急，用360之类的软件去清理一下垃圾，每几个月用一键还原精灵去还原一下系统。</p>
  <p>不过前不久去看了Minix之父AndrewS.Tanenbaum写的那本操作系统之后，了解了一下这是为什么:windows系统在内存的最低地址和最高地址区都有，会有内存泄漏。
    而且微软的白皮书里确实建议到每半年重装一次系统。(逃</p>
  <p>有一点我其实觉得不错，我在linux系统上从来没考虑过安装杀毒软件的事情。也就是说系统本身是比较安全的。毕竟开源了嘛。那么多顶尖黑客去阅读代码，去修改系统bug。
    而且黑客们也都使用这个系统，怎么可能不把它变得安全。而且windows上的病毒在linux上是不起作用的(是时候病毒也要夸平台了。</p>
  <p>最后，想说的是linux安装东西问题，在windows下，基本都是从网上下载一个.exe的安装包，然后双击无脑的下一步就好了。不过这也有一个缺点。
    就是它不具有原子性，也就是说如果你安装软件的时候安装到了一半，你用任务管理器结束进程了(自己闲的没事)，那样，你先前安装的文件是存在在你电脑上的。
    而linux却不一样，它有软件包管理，如果你用命令行去安装软件，及时你中途按下了ctrl+c终止了安装，那么它之前安装的文件是不存在的。
    也就是说，它要么安装成功，要么就没有安装。而且，对于一些编程所需要的环境，框架，也可以轻松的一行命令行解决，而不像windows那样去各种配置。Linux系统还是挺好的。</p>
  <p>另外说一点，有不少人问过我怎么去学Linux系统，或者说怎么学命令行，其实回顾你对于所有陌生事务最初的接触，都一样的，多去使用它，慢慢你就熟悉他了。</p>
  <p>如果你想学好Linux系统的话，那就直接在电脑安装linux吧，也不要使用虚拟机或者双系统。因为虚拟机或者双系统，当你这样做了之后，你还是会在大部分时间去
    使用windows而不是Linux。永远不要畏惧Linux系统，因为它也提供了桌面环境，你去使用Linux，完全可以不使用命令行去操作。也可以像windows那样靠
    鼠标点来点去的操作。</p>
  <p>对于命令行来说，其实记住那几个常用的就好了:rm, mv, cp, ls, cd, touch, mkdir, 以及软件包管理(debian是apt,red hat是yum)。</p>
  <a href="https://github.com/ltoddy/ltoddy.github.io" target="_blank"><img
      style="position: absolute; top: 0; right: 0; border: 0;"
      src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67"
      alt="Fork me on GitHub"
      data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png">
  </a>
</div>
</body>
</html>